Enhancing contact center calculations based on real-time speech analytics

ABSTRACT

System and method to calculate expected waiting time of a caller to a calling center, the method including: monitoring, by a monitor circuit, a content of a present communication session; estimating a point of progress of the monitored communication session; comparing the point of progress to a historical statistic; calculating, by a processor, a projection of a duration of a remainder of the present communication session; and providing, by a communication circuit, an expected waiting time (EWT) based upon the projection of the duration of the remainder of the present communication session. Embodiments may include a speech search process to record call progress. The speech search process may inform, diagnose or monitor a call. The speech search process may inform a supervisor of progress, to take action if necessary. The speech search process may dynamically trigger other processes and construct profiles based upon historical data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/302,779, filed on Jun. 12, 2014, which claims the benefit of U.S.Provisional Patent Application No. 61/933,599, filed on Jan. 30, 2014,the entire content of each of which is hereby incorporated by referencein its entirety.

BACKGROUND 1. Field of the Invention

Embodiments of the present invention generally relate to electroniccollaboration sessions, and, in particular, to a system and method fortracking and predicting service completion times using real-time speechanalytics of user communications.

2. Description of Related Art

Contact center management systems often calculate an estimated expectedwait time (EWT) of a customer contact based on historical information.The formula for calculating expected wait time is typically derived fromthe rate at which contacts are answered, relative to the number ofcontacts in queue, together with other available historical statistics.This calculation is based on historical averages and does not considerany indicators that some calls usually take longer or shorter than thedaily average. Indicators are evidence of the temporal progress of acall, relative to a metric.

Expected Wait Time is fundamental to operation of a contact center. EWTis used in a number of scenarios in a contact center environment. First,the contact center may inform a user of the EWT for their call.Providing such estimates is now commonplace, and a caller may becomedissatisfied if the contact center does not provide him/her the EWT.Informing a caller of the EWT and offering suggestions or alternativeoptions allows users to decide the best course of action for theircircumstances. Second, EWT is used by a contact center to manageworkflow and to make a determination regarding how best to route thecontact. Third, EWT is used in real-time reporting of contact centerstatus in order to display queue metrics to contact center supervisors.Fourth, EWT is used to compute other contact center metrics, e.g., whencalculating performance relative to a Service Level Agreement (SLA) fora given work queue.

Despite expected wait time being a key metric in the day-to-dayoperation of the contact center, the computed value of EWT is anestimated value, and known methods of calculating EWT are notsufficiently accurate. The operation of a contact center could besignificantly enhanced with a more accurate value. Therefore, a needexists to provide improved estimates of expected wait time, in order toprovide more efficient contact center operation, and ultimately improvedcustomer satisfaction.

BRIEF SUMMARY

Embodiments of the present invention generally relate to contact centeroperation and, in particular, to a system and method for calculatingmore accurately the expected wait time by use of real-time speechanalytics.

In one embodiment, a method to calculate expected waiting time of acaller to a calling center includes: monitoring, by a monitor circuit, acontent of a present communication session; estimating a point ofprogress of the monitored communication session; comparing the point ofprogress to a historical statistic; calculating, by a processor, aprojection of a duration of a remainder of the present communicationsession; and providing, by a communication circuit, an expected waitingtime (EWT) based upon the projection of the duration of the remainder ofthe present communication session.

In one embodiment, a method to calculate expected waiting time of acaller to a calling center includes: a processor coupled to a memory; amonitor circuit configured to monitor content of a present communicationsession; an estimation module configured to estimate a point of progressof the monitored communication session; a comparison module configuredto compare the point of progress to a historical statistic; calculating,by a processor, a projection of a duration of a remainder of the presentcommunication session; and providing, by a communication circuit, anexpected waiting time (EWT) based upon the projection of the duration ofthe remainder of the present communication session.

The preceding is a simplified summary of embodiments of the disclosureto provide an understanding of some aspects of the disclosure. Thissummary is neither an extensive nor exhaustive overview of thedisclosure and its various embodiments. It is intended neither toidentify key or critical elements of the disclosure nor to delineate thescope of the disclosure but to present selected concepts of thedisclosure in a simplified form as an introduction to the more detaileddescription presented below. As will be appreciated, other embodimentsof the disclosure are possible utilizing, alone or in combination, oneor more of the features set forth above or described in detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and still further features and advantages of the presentinvention will become apparent upon consideration of the followingdetailed description of embodiments thereof, especially when taken inconjunction with the accompanying drawings wherein like referencenumerals in the various figures are utilized to designate likecomponents, and wherein:

FIG. 1 is a block diagram depicting a system in accordance with anembodiment of the present invention;

FIG. 2 illustrates at a high level of abstraction a server in accordancewith an embodiment; and

FIG. 3 illustrates at a high level of abstraction a method in accordancewith an embodiment of the present invention.

The headings used herein are for organizational purposes only and arenot meant to be used to limit the scope of the description or theclaims. As used throughout this application, the word “may” is used in apermissive sense (i.e., meaning having the potential to), rather thanthe mandatory sense (i.e., meaning must). Similarly, the words“include”, “including”, and “includes” mean including but not limitedto. To facilitate understanding, like reference numerals have been used,where possible, to designate like elements common to the figures.Optional portions of the figures may be illustrated using dashed ordotted lines, unless the context of usage indicates otherwise.

DETAILED DESCRIPTION

The disclosure will be illustrated below in conjunction with anexemplary communication system. Although well suited for use with, e.g.,a system using a server(s) and/or database(s), the disclosure is notlimited to use with any particular type of communication system orconfiguration of system elements. Those skilled in the art willrecognize that the disclosed techniques may be used in any communicationapplication in which it is desirable to utilize automated methods todetect and diagnose quality of service problems associated with anelectronic communication session such as an online electroniccollaboration system.

The exemplary systems and methods of this disclosure will also bedescribed in relation to software, modules, and associated hardware.However, to avoid unnecessarily obscuring the present disclosure, thefollowing description omits well-known structures, components anddevices that may be shown in block diagram form, are well known, or areotherwise summarized.

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of embodiments orother examples described herein. In some instances, well-known methods,procedures, components and circuits have not been described in detail,so as to not obscure the following description. Further, the examplesdisclosed are for exemplary purposes only and other examples may beemployed in lieu of, or in combination with, the examples disclosed. Itshould also be noted the examples presented herein should not beconstrued as limiting of the scope of embodiments of the presentinvention, as other equally effective examples are possible and likely.

As used herein, the term “module” refers generally to a logical sequenceor association of steps, processes or components. For example, asoftware module may comprise a set of associated routines or subroutineswithin a computer program. Alternatively, a module may comprise asubstantially self-contained hardware device. A module may also comprisea logical set of processes irrespective of any software or hardwareimplementation.

As used herein, the term “transmitter” may generally comprise anydevice, circuit, or apparatus capable of transmitting a signal. As usedherein, the term “receiver” may generally comprise any device, circuit,or apparatus capable of receiving a signal. As used herein, the term“transceiver” may generally comprise any device, circuit, or apparatuscapable of transmitting and receiving a signal. As used herein, the term“signal” may include one or more of an electrical signal, a radiosignal, an optical signal, an acoustic signal, and so forth.

The term “computer-readable medium” as used herein refers to anytangible storage and/or transmission medium that participates in storingand/or providing instructions to a processor for execution. Such amedium may take many forms, including but not limited to, non-volatilemedia, volatile media, and transmission media. Non-volatile mediaincludes, for example, NVRAM, or magnetic or optical disks. Volatilemedia includes dynamic memory, such as main memory. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, or any other magnetic medium,magneto-optical medium, a CD-ROM, any other optical medium, punch cards,paper tape, any other physical medium with patterns of holes, RAM, PROM,EPROM, FLASH-EPROM, solid state medium like a memory card, any othermemory chip or cartridge, a carrier wave as described hereinafter, orany other medium from which a computer can read. A digital fileattachment to e-mail or other self-contained information archive or setof archives is considered a distribution medium equivalent to a tangiblestorage medium. When the computer-readable media is configured as adatabase, it is to be understood that the database may be any type ofdatabase, such as relational, hierarchical, object-oriented, and/or thelike. Accordingly, the disclosure is considered to include a tangiblestorage medium or distribution medium and prior art-recognizedequivalents and successor media, in which the software implementationsof the present disclosure are stored.

One or more embodiments of the present invention may utilize SessionInitiation Protocol (SIP) as a communication protocol. SIP is acommunications protocol that is known and described in InternetEngineering Task Force (IETF) Request For Comment (RFC) 3261, thecontent of which is hereby incorporated by reference in its entirety.SIP is an open signaling protocol for establishing many kinds ofreal-time communication sessions. Examples of the types of communicationsessions that may be established using SIP include voice, video, and/orinstant messaging. SIP also facilitates peer-to-peer communicationsessions. These communication sessions may be carried out on any type ofcommunication device such as a personal computer, laptop computer,Personal Digital Assistant, telephone, mobile phone, cellular phone, orthe like. One key feature of SIP is its ability to use an end-user'sAddress of Record (AOR) as a single unifying public address for allcommunications. Thus, in a world of SIP-enhanced communications, auser's AOR becomes their single address that links the user to all ofthe communication devices associated with the user. Using this AOR, acaller can reach any one of the user's communication devices, alsoreferred to as User Agents (UAs) without having to know each of theunique device addresses or phone numbers.

SIP is not a vertically integrated communications system. SIP is rathera component that can be used with other IETF protocols to build acomplete multimedia architecture. Typically, these architectures willinclude protocols such as RTP (RFC 3550) for transporting real-time dataand providing QoS feedback, the Real-Time streaming protocol (RTSP) (RFC2326) for controlling delivery of streaming media, the Media GatewayControl Protocol (MEGACO) (RFC 3015) for controlling gateways to thePublic Switched Telephone Network (PSTN), and the Session DescriptionProtocol (SDP) (RFC 4566) for describing multimedia sessions. Therefore,SIP should be used in conjunction with other protocols in order toprovide complete services to the users. However, the basic functionalityand operation of SIP does not depend on any of these protocols.

The Real-Time Transport Control Protocol (“RTCP”) is a protocol that isknown and described in Internet Engineering Task Force (IETF) RequestFor Comment RFC 3550. RTCP provides out-of-band statistics and controlinformation for an RTP media stream. It is associated with RTP in thedelivery and packaging of a media stream, but does not transport themedia stream itself. Typically RTP will be sent on an even-numbered userdatagram protocol (“UDP”) port, with RTCP messages being sent over thenext higher odd-numbered port. RTCP may be used to provide feedback onthe quality of service (“QoS”) in media distribution by periodicallysending statistics information to participants in a streaming multimediasession. Systems implementing RTCP gather statistics for a mediaconnection and information such as transmitted octet and packet counts,lost packet counts, jitter, and round-trip delay time. An applicationprogram may use this information to control quality of serviceparameters, for instance by limiting a flow rate or by using a differentcodec.

Referring now to FIG. 1, which is a block diagram depicting a contactcenter in accordance with an embodiment of the present invention, thereis provided a contact center 100. The contact center generally comprisesa central server 110, a set of data stores or databases 114 containingcontact or customer related information and other information that canenhance the value and efficiency of the contact, and a plurality ofservers, for example, a voice mail server 126, an Interactive VoiceResponse unit or “IVR” 122, and other servers 124, an outbound dialer128, a switch 130, a plurality of working agents operatingpacket-switched (first) telecommunication devices 134-1 to N (such as,but not limited to, computer work stations or personal computers),and/or circuit-switched (second) telecommunication devices 138-1 to M,all interconnected by a local area network LAN (or wide area networkWAN) 142. The servers can be connected via optional communication lines146 to the switch 130.

As will be appreciated, the other servers 124 can also include a scanner(which is normally not connected to the switch 130 or Web server), VoIPsoftware, video call software, voice messaging software, an IP voiceserver, a fax server, a web server, an instant messaging server, and anemail server) and the like. The switch 130 is connected via a pluralityof trunks 150 to the Public Switch Telecommunication Network or PSTN 154and via link(s) 152 to the second telecommunication devices 138-1 to M.A gateway 158 is positioned between the server 110 and thepacket-switched network 162 to process communications passing betweenthe server 110 and the network 162.

The gateway 158 may comprise Avaya Inc.'s, G250™, G350™, G430™, G450™,G650™, G700™, and IG550™ Media Gateways and may be implemented ashardware such as, but not limited to, via an adjunct processor (asshown) or as a chip in the server.

The first telecommunication devices 134-1, . . . 134-N arepacket-switched devices, and may include, for example, IP hardphones,such as the Avaya Inc.'s, 1600™, 4600™, and 5600™ Series IP Phones™; IPsoftphones running on any hardware platform such as PCs, Macs,smartphones, or tablets, (such as Avaya Inc.'s, IP Softphone™); PersonalDigital Assistants or PDAs; Personal Computers or PCs, laptops;packet-based H.320 video phones and/or conferencing units; packet-basedvoice messaging and response units; and packet-based traditionalcomputer telephony adjuncts.

The second telecommunication devices 138-1, . . . 138-M arecircuit-switched. Each of the telecommunication devices 138-1, . . .138-M corresponds to one of a set of internal extensions, for example,Ext1, . . . ExtM, respectively. These extensions are referred to hereinas “internal” in that they are extensions within the premises that aredirectly serviced by the switch. More particularly, these extensionscorrespond to conventional telecommunication device endpoints servicedby the switch/server, and the switch/server can direct incoming calls toand receive outgoing calls from these extensions in a conventionalmanner.

The second telecommunication devices can include, for example, wired andwireless telephones, PDAs, H.320 video phones and conferencing units,voice messaging and response units, and traditional computer telephonyadjuncts. Exemplary digital telecommunication devices include AvayaInc.' s 2400™, 5400™, and 9600™ Series phones.

It should be noted that embodiments of the present invention do notrequire any particular type of information transport medium betweenswitch or server and first and second telecommunication devices, i.e.,embodiments of the present invention may be implemented with any desiredtype of transport medium as well as combinations of different types oftransport media.

The packet-switched network 162 of FIG. 1 may comprise any data and/ordistributed processing network such as, but not limited to, theInternet. The network 162 typically includes proxies (not shown),registrars (not shown), and routers (not shown) for managing packetflows. The packet-switched network 162 is in (wireless or wired)communication with an external first telecommunication device 174 via agateway 178, and the circuit-switched network 154 with an external(wired) second telecommunication device 180 and (wireless) third(customer) telecommunication device 184. These telecommunication devicesare referred to as “external” in that they are not directly supported astelecommunication device endpoints by the switch or server. Thetelecommunication devices 174 and 180 are an example of devices moregenerally referred to herein as “external endpoints.”

In one configuration, the server 110, network 162, and firsttelecommunication devices 134 are Session Initiation Protocol or SIPcompatible and may include interfaces for various other protocols suchas, but not limited to, the Lightweight Directory Access Protocol orLDAP, H.248, H.323, Simple Mail Transfer Protocol or SMTP, IMAP4, ISDN,E1/T1, and analog line or trunk.

It should be emphasized the configuration of the switch, server, usertelecommunication devices, and other elements as shown in FIG. 1 is forpurposes of illustration only and should not be construed as limitingembodiments of the present invention to any particular arrangement ofelements.

In handling incoming calls, a contact center is capable of exchangingInternet Protocol (IP) data packets, Session Initiation Protocol (SIP)messages, Voice over IP (VoIP) traffic, and stream-related messages(e.g., Real Time Streaming Protocol (RTSP) messages, etc.) with callingendpoints such as endpoint 202. As those who are skilled in the art willappreciate, after reading this specification, contact center 210 iscapable of communicating by using other protocols, in some alternativeembodiments.

As will be appreciated, the central server 110 is notified via LAN 142of an incoming contact by the telecommunications component (e.g., switch130, fax server, email server, web server, and/or other server)receiving the incoming contact. The incoming contact is held by thereceiving telecommunications component until the server 110 forwardsinstructions to the component to route, and then forward the contact toa specific contact center resource such as, but not limited to, the IVRunit 122, the voice mail server 126, the instant messaging server,and/or first or second telecommunication device 134, 138 associated witha selected agent. The server 110 distributes and connects these contactsto telecommunication devices of available agents, based on thepredetermined criteria noted above.

When the central server 110 forwards a voice contact to an agent, thecentral server 110 also forwards customer-related information fromdatabases 114 to the agent's computer work station for viewing (such asby a pop-up display) to permit the agent to better serve the customer.The agents process the contacts sent to them by the central server 110.This embodiment is particularly suited for a Customer RelationshipManagement (CRM) environment in which customers are permitted to use anymedia to contact a business. In the CRM environment, both real-time andnon-real-time contacts may be handled and distributed with equalefficiency and effectiveness. The server 110 may use a work assignmentalgorithm that, for example, does not use a queue. In any event, thecontact may have associated or “known” contact information. This contactinformation may include, for example, how long the contact has beenwaiting, the contact's priority, the contact's media channel, thecontact's business value, etc. The contact may be handled based on suchknown contact information.

The server and/or switch can be a software-controlled system including aprocessing unit (CPU), microprocessor, or other type of digital dataprocessor executing software or an Application-Specific IntegratedCircuit (ASIC) as well as various portions or combinations of suchelements. The memory may comprise random access memory (RAM), aread-only memory (ROM), or combinations of these and other types ofelectronic memory devices. Embodiments of the present invention may beimplemented as software, hardware (such as, but not limited to, a logiccircuit), or a combination thereof.

The contact center 100, in one configuration, includes an automatedinstant messaging server as another server 124. In such an embodiment,when a customer initiates contact with the contact center 100 usinginstant messaging (IM), a new instant messaging thread is initiated bythe customer. As will be appreciated, instant messages are stand-alonemessages, and threading (or associating instant messages with datastructures associated with an instant messaging session between acustomer and an agent) occurs at the application level. The associationis typically effected by pairing an electronic address (e.g., IPaddress, Media Access Control (MAC) address, telephone number,mobile-device identifier, and the like) of the customer's communicationdevice with an electronic address (e.g., IP address, MAC address,telephone number, mobile-device identifier, and the like) of the agent'scommunication device in a manner similar to that used for a voice call.

The instant messaging server can be configured to send an automatedresponse, such as “Please wait while I connect you with an agent” and/orto send the instant message to an automated interactive response unitfor data collection. The instant messaging server subsequently notifiesthe server 110 of the existence of a new instant messaging contact, andthe server 110 decides whether a suitable (human) agent is available. Ifan agent is available, the server 110 instructs the instant messagingserver to redirect the instant messaging conversation to that availableagent's communication device 134-1 . . . N. The server 110 routes,substantially in real-time, subsequent instant messages from the agent'scommunication device to the customer's communication device and from thecustomer's communication device to the agent's communication device.

Referring to FIG. 2, one possible configuration of the server 110 isdepicted. The server 110 is in communication with a plurality ofcustomer communication lines 200 a-y (which can be one or more trunks,phone lines, etc.) and agent communication line 204 (which can be avoice-and-data transmission line such as LAN 142 and/or a circuitswitched voice line). The server 110 can include a Basic Call ManagementSystem (BCMS) (not shown) and a Call Management System (CMS) (not shown)that gathers call records and contact-center statistics for use ingenerating contact-center reports.

The switch 130 and/or server 110 can be any computer and/ortelecommunication architecture for directing contacts to one or moretelecommunication devices to be serviced by one or more preferredagents. Illustratively, the switch and/or server 110 can be a modifiedform of the subscriber-premises equipment disclosed in U.S. Pat. Nos.6,192,122; 6,173,053; 6,163,607; 5,982,873; 5,905,793; 5,828,747; and5,206,903, all of which are incorporated herein by this reference; AvayaInc.'s Private-Branch Exchange (PBX)-based ACD system; MultiVantage™PBX, CRM Central 2000 Server™; Communication Manager™, and/or 58300™media server.

Typically, the switch/server 110 is a stored-program-controlled systemthat conventionally includes interfaces to external communication links,a communications switching fabric, service circuits (e.g., tonegenerators, announcement circuits, etc.), memory for storing controlprograms and data, and a processor (i.e., a computer) for executing thestored control programs to control the interfaces and the fabric and toprovide automatic contact-distribution functionality. The switch and/orserver typically include a network interface card (NIC) (not shown) toprovide services to the serviced telecommunication devices. Other typesof known switches and servers are well known in the art and thereforenot described in detail herein.

Referring again to FIG. 2, included among the data stored in the server110 is a set of contact queues 208 a-n and a separate set of agentqueues 212 a-n. Each contact queue 208 a-n corresponds to a differentset of agent skills, as does each agent queue 212 a-n. Conventionally,contacts are prioritized and are either enqueued in individual ones ofthe contact queues 208 a-n in their respective orders of priority or areenqueued in different ones of a plurality of contact queues thatcorrespond to a different priority.

Likewise, each agent's skills are prioritized according to his or herlevel of expertise in that skill, and either agents are enqueued inindividual ones of agent queues 212 a-n in their order of expertiselevel or are enqueued in different ones of a plurality of agent queues212 a-n that correspond to a skill. Each one of which corresponds to adifferent expertise level. Although depicted for clarity sake as skillsof the agents, these queues equally may represent agent attributes orsome other parameters such that the agents are matched up with contactson a preferred agent basis.

In one embodiment of the present invention, as depicted in FIG. 2, acontact vector (queue) 216 is included among the control programs in theserver 110. Contacts incoming to the contact center may be assigned bycontact vector 216 to different contact queues 208 a-n based upon anumber of predetermined criteria, including customer identity, customerneeds, contact center needs, current contact center queue lengths,customer value, and the agent skill, attributes or other parametersrequired for the proper handling of the contact and being designated asa preferred agent for a particular contact.

Agents who are determined to be preferred agents for a given contact,and are available for handling said contacts are assigned to agentqueues 212 a-n based upon the skills or attributes they possess. Anagent may have multiple skills, attributes or other parameters, andhence may be assigned to multiple agent queues 212 a-n simultaneously.Furthermore, an agent may have different levels of skill expertise(e.g., skill levels 1-N in one configuration or merely primary skillsand secondary skills in another configuration), and hence may beassigned to different agent queues 212 a-n at different expertiselevels. Call vectoring is described in Communication ManagerCommunications System Generic 3. Call Vectoring/Expert Agent Selection(EAS) Guide, AT&T publication no. 555-230-520 (Issue 3, Nov. 1993).Skills-based ACD is described in further detail in U.S. Pat. Nos.6,173,053 and 5,206,903.

Referring to FIG. 2, which depicts a block diagram of a server 210 inaccordance with an embodiment of the present invention, there isprovided a server 210 in communication with a work source 230, which maycomprise customer or any other entity capable of originating atransmission of work or a contact. The server 210 may be configured incommunication with the work source 230 generally via a work sourcecommunication means 232, which may comprise any means of communicatingdata, for example, one or more trunks, phone lines, wirelessconnections, Bluetooth connections, digital connections, analogconnection, combinations thereof, and the like.

In some embodiments of the present invention, the server 210 may also bein communication with a destination 260, which may comprise an agent orany entity capable of receiving a transmission of work or a contact. Theserver 210 may be configured in communication with the destination 260generally via an agent communication means 262, which may comprise anymeans of communicating data, for example, a voice-and-data transmissionline such as LAN and/or a circuit switched voice line, wirelessconnections, Bluetooth connections, digital connections, analogconnections, combinations thereof, and the like. The server 210 maycomprise any type of computer server, for example, a Basic CallManagement System (“BCMS”) and a Call Management System (“CMS”) capableof segmenting work.

The server 210 can be any architecture for directing contacts to one ormore telecommunication devices. Illustratively, the server may be amodified in the form of Avaya Inc.' s Private-Branch Exchange(PBX)-based ACD system; MultiVantage™ PBX, CRM Central 2000 Server™,Communication Manager™, Business Advocate™, Call Center™, Contact CenterExpress™, Interaction Center™, and/or 58300™, 58400™, 58500T™, and58700™ servers; or Nortel's Business Communications Manager IntelligentContact Center™, Contact Center—Express™, Contact Center ManagerServer™, Contact Center Portfolio™, and Messaging 100/150 Basic ContactCenter™.

In many embodiments, the server 210 may be a stored-program-controlledsystem that conventionally includes, for example, interfaces to externalcommunication links, a communications switching fabric, service circuits(e.g., tone generators, announcement circuits, and the like.), memoryfor storing control programs and data, and a processor (i.e., acomputer) for executing the stored control programs to control theinterfaces and the fabric and to provide automatic contact-distributionfunctionality. The server 210 generally may include a network interfacecard (not shown) to provide services to the serviced telecommunicationdevices.

The server 210 may be configured for segmenting work in the contactcenter and may comprise an administrative database 244 configured tostore at least a common skill option and a service skill option; anadministrative graphical user interface (“GUI”) 242 for accessing atleast the administrative database 244 and configuring the common skilloption and the service skill option; an orchestration system 246configured to receive a contact from a work source 230 and orchestratethe contact according to a qualification logic stored in a qualificationlogic database 248; and an assignment engine 250 configured to receivethe contact, the common skill option, and the service skill option, andsegment the contact according to an assignment logic stored in anassignment logic database 252. In accordance with some embodiments ofthe present invention, the qualification logic stored in thequalification logic database 248 and the assignment logic stored in theassignment logic database 252 may comprise any logical set of steps orsequences configured to process data at the contact center in accordancewith any embodiment of the present invention.

The server and/or switch can be a software-controlled system including aprocessing unit (CPU), microprocessor, or other type of digital dataprocessor executing software or an Application-Specific IntegratedCircuit (ASIC) as well as various portions or combinations of suchelements.

Automatic Call Distribution (“ACD”) is a communication server softwarefeature that processes incoming, outgoing, and internal calls anddistributes them to groups of extensions called hunt groups or splits.The communication server also sends information about the operation ofthe ACD to the Call Management System (“CMS”) which stores and formatsthe data and produces real-time and historical reports on ACD activity.ACD is used by a contact center to route incoming calls to specificallyassigned splits/skills and agents. ACD allows a system administrator tocreate an efficient call management environment.

Presently available systems to estimate expected waiting time to respondto a customer contact (e.g., voice call, video call, chat/IM session,etc.) rely on historical information to derive an estimated expectedwait time. Because any specific contact may take different time than theaverage, existing call centers operate based on statistical butinaccurate estimated data.

Embodiments in accordance with the present disclosure may use indicatorsas evidence to gauge or measure the temporal progress of a call,relative to a metric such as a historical statistic (e.g., average,average plus one standard deviation, etc.) or a target (e.g., a timelimit). Indicators provide indication of how a conversation isprogressing, in real-time. For example, indicators may be used to helpidentify a customer calling a help desk who is taking a long time toprovide required details that the agent needs in order to assist inresolving the issue. Indicators may include actions by an agent (e.g.,placing the customer on hold), or the length of time it takes to performa subtask (e.g., how long it takes for an agent to find the customerdetails in a CRM system).

System 100 of FIG. 1 may be used to support more accurate calculationsof EWT. Calculation of EWT is useful for calls that are assigned to acallee (e.g., to a contact center agent or similar many-to-one mapping)by an ACD system, or for calls in which a caller may need to wait for acallee (e.g., the caller needs to wait for an agent that possesses apredetermined skill or skill set). In contrast, EWT has less relevanceto a one-to-one mapping of a caller to a callee (e.g., a point-to-pointcall).

Embodiments in accordance with the present disclosure may use system 100for substantially real-time detection of words and phrases spoken by theagent and/or the caller in order to estimate a point of progress (i.e.,a progress point) in the present call. The detection may be real-time towithin a resolution of time that is small compared to the estimatedlength of the remainder of the call. Embodiments may be useful when thecall is expected to progress along a predictable progression or script.A speech semantics engine and/or a speech analytics may monitor an audioand/or video media stream and may identify (e.g., measure) the point ofprogress of a voice call in real-time (i.e., during the call) in orderto forecast more accurately an expected duration of the call. Speechanalytics may refer to a process of searching a speech session for agiven phrase or set of phrases. Speech semantics (also referred to assemantic assertion) typically refers to a process of inferring themeaning of voice conversation based on matching given phrase or phrases.The real-time identification is provided to a contact center application(e.g., Avaya Collaboration Environment 3.0™), which in turn dynamicallyupdates the expected wait time and provides the updated EWT for furthercontact center operation.

Embodiments in accordance with the present disclosure may calculate aprojection of an amount of time for the present call to conclude, basedupon a point of progress of the current call. The amount of time for thepresent call to conclude may be used as datum to estimate the EWT ofsubsequent callers. For example, if the present call has taken 20%longer than average to be at the present point of progress, embodimentsmay estimate that the remainder of the call will also take 20% longer.In some embodiments, the average may be based upon previous calls thatshare some predetermined characteristics with the present call.

In some embodiments, an EWT reported to a waiting caller may be longerthan the average EWT calculated from historical data. For example,embodiments may report the average plus one standard deviation to theuser as the EWT. This may represent a conservative estimate for the userto set a low expectation. Such a conservative estimate may alsoaccommodate user perceptions, in which a wait of a predetermined length(e.g., one minute) may be perceived by a waiting user as being longer(e.g., >1 minute). If the actual waiting time is less than theconservative estimate, then the user is more likely to be pleasantlysurprised. In contrast, if an EWT based upon just an average is reportedto the user, then approximately half the time the user will experience agreater EWT, causing a greater likelihood that the user will bedissatisfied. In some further embodiments, the EWT used for otheroperational purposes in the contact center may be different that the EWTprovided to the caller, e.g., the EWT for operational purposes may bethe calculated average without a standard deviation.

In some embodiments, the estimate may take into account separateestimates for different types of questions. For example, if answers forrelatively straightforward questions has been average (e.g., questionsasking name, phone number, etc.), but more open-ended questions havetaken longer to answer (e.g., “why are you calling today”?), aprojection for completing the current call may be weighted according tothe category of remaining questions, and relatively how long this callerhas taken to answer previous question of the same respective category,and how many questions of each category remain to be answered.

As part of the contact center application, embodiments in accordancewith the present disclosure may further include a real-time speechsearch engine (e.g., the Avaya™ Aurix™ speech search engine). Thereal-time speech search engine may enable a search of a monitored voicecall based on the semantic meaning of the conversation rather thansimply an audio match of the call. The real-time speech search enginemay also generate a real-time notification when a match to apredetermined condition is found during a live conversation.Predetermined conditions may include the occurrence of certain words,phrases, semantic equivalents of the words and phrases, and relatedtiming (e.g., within “X” number of words or seconds within each other,etc.). Usage of the real-time speech search engine enables a moreaccurate and/or reliable detection of a point of progress in the call bythe contact center application. The monitoring may be carried out forsome or all in-progress calls to the contact center, concurrently. Bymonitoring other calls active in the same queue/skill, a more accuratemeasurement for expected wait time can be obtained for the overallcontact center, for in-progress and future calls.

In some embodiments in accordance with the present disclosure, a videofeed may be monitored in order to estimate a point of progress of avideo call. The video may be monitored for visible actions such asgestures, lip and/or facial movements, textual presentation of requireddisclosures that may accompany a spoken disclosure, answers from acaller, and so forth.

Embodiments in accordance with the present disclosure may be furtherillustrated by reference to a usage scenario. The usage scenario belowis not limiting but rather exemplary, and other usage scenarios arecontemplated. The usage scenario is useful for an audio or videocommunication session. The usage scenario begins by assuming that acontact center agent working at a financial services company may behandling an incoming call related to a loan application request.Depending upon the subject matter of the call, certain questions,statements and/or disclosures may be required to be read by the agent tothe caller, e.g., legal disclosures or disclaimers, requests for certaininformation, etc. Conversely, depending upon the subject matter, thecaller may be required to disclose certain information, such as aresidential address, telephone number, social security number (SSN),etc. During the call, the agent may be required to capture and inputcustomer response information into a banking contact center applicationprogram. The banking contact center application program may beaccessible via, and integrated with, an agent user interface on theagent's terminal, such as Avaya™ Agent Desktop. The agent user interfaceis an interface that the agent experiences at his/her terminal wheninteracting with a contact center application program such as thebanking contact center application programs.

To aid the contact center agent, the contact center application programmay be configured to recognize substantially all questions and phrasesthat must be uttered during the call (e.g., uttered by the agent readinga required disclosure, the agent asking for a SSN, the caller providinga SSN, and so forth). On the agent's user interface, a policy adherencedisplay may be visible or accessible as part of the agent userinterface. The policy adherence display may inform the agent whatrequired statements the agent must read to the caller, when the requiredstatements the agent must be read, and/or what required statements havenot yet been read by the agent to the caller. The policy adherencedisplay may update dynamically when there is a speech search matchbetween what the agent has uttered and a required statement. A match maybe declared by the contact center application program when a statisticalconfidence of the match exceeds a predetermined threshold.

When calculating a statistical confidence of a match, certain groups ofwords such as nouns and verbs may be weighted more heavily than otherwords such as prepositions. For example, the agent may be required toobtain the customer's social security number. Although a preferredquestion from the agent to ask for the caller's SSN may be “What is yoursocial security number?”, the agent intentionally or unintentionally maydeviate from the script by saying similar phrases such as “What's yoursocial security number?”, “What's your social?”, or simply “SocialSecurity Number?” with an inflection to indicate that a question isintended. Membership in the group of words may change with the nominalquestion being asked (e.g., a question asking the caller's address wouldhave different groups of words to monitor for). Here, the word “social”may be a member of a group of words having the highest weighting; theword “security” may be a member of a group of words having a relativelylesser but still high weighting, and the word “what” may be a member ofa group of words having a relatively low weighting. Once the agentrequests this information, the display on the agent's terminal (e.g., anAgent Desktop interface) may dynamically update in order to indicatethat the required phrase has been uttered, e.g., as part of a policyadherence.

In addition to updating a policy adherence display on an agent'sdesktop, embodiments in accordance with the present disclosure mayaugment the contact center application program by including a speechsearch plug-in process in order to record progress of the call. Thespeech search plug-in process may be used to inform, diagnose and/or tomonitor a call based upon a speech signal from the call. For example,the speech search plug-in process may be configured to inform asupervisor, via their desktop client, that a predetermined phrase hasbeen uttered by a customer or agent, such that the predetermined phrasemay require the supervisor to observe the call or to activelyparticipate in the call.

Additionally, the speech search plug-in may be integrated with otherbusiness process applications concurrently executing in the contactcenter (e.g., a workflow applications) in order to dynamically trigger abackground work processes based upon speech search matches. For example,if a customer during a call utters the phrase “I read an advertisementfor your product in this morning's paper,” detection of this phrase maytrigger a workflow process to update a backend database with informationabout the caller for marketing purposes. By monitoring calls inreal-time, the plug-in process may be able to construct a profile basedupon historical data.

The profile may include data based upon collecting details for allcalls, which in turn is used to derive a standard set of metrics and/ormeasurements. An example of a metric may be an amount of time a callertakes to answer a question. Measurements may include, for example,sufficient data to calculate an average amount of time that it takes forcustomers to respond with their SSN number when requested. The profilemay include information that indicates when or under what circumstancesa customer may provide responses immediately, or when or under whatcircumstances additional time may be required. For example, somecustomers may be able to provide their social security numberimmediately (i.e., from memory), while other customers may need to lookup the information. In this example, the speech search plug-in may matchthe request for a SSN number by the agent to the customer response.Based on historical data, derived from measurements of previous calls, astatistic (e.g., an average) may be calculated for how long customerstypically take to respond. This is compared with the current call todetermine if it is within this statistic. Such a process allowsembodiments to predict if the call will complete within a pre-determinedestimated time, or whether additional time will be required (e.g.,because the customer takes additional time to provide their socialsecurity number). By proactively monitoring the calls, embodiments areable to determine an average duration for a call, which provides a moreaccurate expected wait time, thus improving the customer experience aswell as the overall contact center operations. By comparing each pieceof information to historical statistics, embodiments may dynamicallyupdate an estimated time to complete a call, thus providing a moreaccurate figure.

Some embodiments in accordance with the present disclosure may try topredict or forecast whether the rest of a call from this caller will befast or slow, e.g., take more or less time than a predeterminedstatistic. For example, if there are ten pieces of information that thecaller must supply, and if the caller took twice as long as average tosupply the first two pieces of information, then embodiments mayestimate that the last eight pieces of information will also take abouttwice as long as average. A statistical confidence of this estimate mayimprove as the actual response times of more pieces of information isknown and fewer are unknown.

By calculating and providing a more accurate expected wait time,embodiments in accordance with the present disclosure may enable contactcenter applications to make more intelligent decisions regarding how toroute contacts, based on real-time information. The more accurateexpected wait time may also be provided to customers in order to improvecustomer satisfaction.

Embodiments are not limited to voice or video calls. In accordance withanother embodiment in accordance with the present disclosure,embodiments may proactively monitor multi-media contacts in real-time inorder to provide a more accurate expected wait time. Using chat serverapplications, social media gateway applications and the like, acommunication session between a contact center and a caller usingsubstantially any communication mode supported by the contact center(e.g., web communication/Social Media/SMS and IM conversations and thelike) may be monitored in real-time in order to track their progress ofthe communication session towards completion. With more accurateinformation about progress of the communication session, the contactcenter application may maintain a more accurate expected wait time forqueued contacts.

In accordance with another embodiment of the present disclosure, when anagent chooses a template (e.g., an email template, i.e., a customizableoutline of an email message; or a recording of the reading of a requireddisclosure, etc.) in order to reply to a customer contact, an agentdesktop client may inform the contact center in real-time that atemplate is being used to respond to the customer. This knowledge allowsthe contact center application to predict more accurately a length oftime that the agent will spend on the contact.

FIG. 3 illustrates at a high level of abstraction a method 300 inaccordance with an embodiment of the invention. Method 300 may be usefulfor, e.g., producing an estimated waiting time. Method 300 may becarried out at least in part by a processor coupled to a memory, thememory configured to store at least in part instructions that, whencarried out by the processor, perform at least a portion of method 300.Method 300 begins at step 301, at which monitoring by a monitor circuitof a current call or other communication session may begin. Monitoringmay include monitoring an audio call, monitoring the audio and/or videoportion of a video call, monitoring textual messages such as chat/IMsessions, etc., as may be described earlier. The monitoring may be amonitoring of the content of the call by, e.g., semantic analysis.

Next, control of method 300 transitions to step 303, at which a point ofprogress of the monitored call may be estimated by a processor. Thepoint of progress may be an estimate of, e.g., at what point during theconduct of a substantially scripted call that the present call is at inreal-time, as may be described above in further detail. For example, thepoint of progress may be the first of three disclosures required to beread, or the point at which certain information is provided (e.g., SSN,address, authentication information, etc.). The estimate may be basedupon audio, video and/or textual matching techniques as described abovein further detail.

Next, control of method 300 transitions to step 305, at which theestimated point of progress for the current call may be compared by aprocessor to relevant historical statistics. The comparison may be,e.g., of how long previous calls have taken to arrive at a similar pointin a similar call. The scope of relevant historical statistics may bestatistics for previous calls that share a characteristic with thecurrent call, such as sharing the identity of the caller, a groupmembership of the caller (e.g., an employer, an affiliation, etc.), astatus of the caller (e.g., present customer, prospective customer,former customer), the reason for calling, characteristics of the callitself (e.g., geographic origins if callers from some regions such asNYC are apt to speak faster than callers from other regions such as thesouthern portion of the U.S.), and so forth, as may be described abovein further detail.

Next, control of method 300 transitions to step 307, at which aprojection of the duration of the remainder of the call may be estimatedby a processor based upon the comparison of the estimated point ofprogress to the relevant historical statistics, as may be describedabove in further detail. For example, the projection may be based uponhow the point of progress of the present call compares to the relevanthistorical statistic (e.g., 20% higher, 10% lower, etc.), and projectthe comparison to the remainder of the call. Or, in other embodiments,the projection may be weighted according to the types or groups ofresponses provided so far, compared to (or weighted by) the remainingtypes or groups of responses still to be provided in the present call.

Next, control of method 300 transitions to step 309, at which anexpected wait time is provided by a communication circuit. For example,an expected wait time may be provided by a first communication circuitto contact center applications in order to better manage contact centeroperations. Alternatively or in addition, an expected wait time may beprovided by a second communication circuit to one or more callerswaiting in queue to inform the callers how much longer they may bewaiting. The expected waiting time provided to callers may differ fromthe expected waiting time provided to contact center application. Such adifference in EWT may be used to help manage customer expectations inlight of customer perceptions of elapsed time. An example of acommunication circuit is a transmitter as previously described.

Embodiments in accordance with the present disclosure provide arelatively more accurate representation of contact center metrics, thusimproving the user experience as well as the overall contact centeroperations. By analyzing voice conversations in real-time, embodimentsmay intelligently predict remaining call length of the present call, inorder to provide a more accurate estimate of expected wait time forsubsequent calls.

Embodiments of the present invention include a system having one or moreprocessing units coupled to one or more memories. The one or morememories may be configured to store software that, when executed by theone or more processing unit, allows practice of embodiments describedherein, at least by use of processes described herein, including atleast in FIG. 3, and related text.

The disclosed methods may be readily implemented in software, such as byusing object or object-oriented software development environments thatprovide portable source code that can be used on a variety of computeror workstation platforms. Alternatively, the disclosed system may beimplemented partially or fully in hardware, such as by using standardlogic circuits or VLSI design. Whether software or hardware may be usedto implement the systems in accordance with various embodiments of thepresent invention may be dependent on various considerations, such asthe speed or efficiency requirements of the system, the particularfunction, and the particular software or hardware systems beingutilized.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the present invention may be devisedwithout departing from the basic scope thereof. It is understood thatvarious embodiments described herein may be utilized in combination withany other embodiment described, without departing from the scopecontained herein. Further, the foregoing description is not intended tobe exhaustive or to limit the invention to the precise form disclosed.Modifications and variations are possible in light of the aboveteachings or may be acquired from practice of the invention. Certainexemplary embodiments may be identified by use of an open-ended listthat includes wording to indicate that the list items are representativeof the embodiments and that the list is not intended to represent aclosed list exclusive of further embodiments. Such wording may include“e.g.,” “etc.,” “such as,” “for example,” “and so forth,” “and thelike,” etc., and other wording as will be apparent from the surroundingcontext.

No element, act, or instruction used in the description of the presentapplication should be construed as critical or essential to theinvention unless explicitly described as such. Also, as used herein, thearticle “a” is intended to include one or more items. Where only oneitem is intended, the term “one” or similar language is used. Further,the terms “any of” followed by a listing of a plurality of items and/ora plurality of categories of items, as used herein, are intended toinclude “any of,” “any combination of,” “any multiple of,” and/or “anycombination of multiples of” the items and/or the categories of items,individually or in conjunction with other items and/or other categoriesof items.

Moreover, the claims should not be read as limited to the describedorder or elements unless stated to that effect. In addition, use of theterm “means” in any claim is intended to invoke 35 U.S.C. §112, ¶6, andany claim without the word “means” is not so intended.

What is claimed is:
 1. A method to calculate an expected waiting time(EWT) of a contact in a contact center, comprising: monitoring, by aprocessor, a content of a present communication session; providing, bythe processor, a policy adherence display comprising a plurality ofrequired statements for the present communication session; based ondetection of one or more of the plurality of required statements in thecontent of the present communication session: dynamically updating, bythe processor, the policy adherence display to indicate detection of theone or more required statements; and estimating, by the processor, basedon the detection of the one or more required statements, a point ofprogress of the present communication session; comparing, by theprocessor, the point of progress of the present communication session toa historical statistic; calculating, by the processor, based on thecomparison, a projection of a duration of a remainder of the presentcommunication session; and providing, by the processor, the EWT to acommunications circuit.
 2. The method of claim 1, wherein calculatingthe projection comprises calculating an average EWT based on thecomparison with the historical statistic and wherein: the communicationscircuit is associated with the contact; and the EWT provided to thecommunications circuit comprises the average EWT plus one standarddeviation.
 3. The method of claim 1, wherein calculating the projectioncomprises calculating an average EWT based on the comparison with thehistorical statistic and wherein: the communications circuit isassociated with one or more contact center applications; and the EWTprovided to the communications circuit comprises the average EWT.
 4. Themethod of claim 1, wherein the plurality of required statements comprisetwo or more categories of statements and wherein calculating theprojection comprises weighting the projection based on: (i) a number ofrequired statements within each of the two or more categories that havebeen detected; and (ii) a number of remaining required statements withineach of the two or more categories.
 5. The method of claim 1, furthercomprising: implementing, by the processor, a speech search plug-in;monitoring, by the processor via the speech search plug-in, a speechsignal from the present communication session; and based on themonitoring, detecting, by the processor, one or more predeterminedphrases.
 6. The method of claim 5, further comprising: transmitting, bythe processor, to a desktop client of a supervisor, an indicationrelated to detection of the one or more predetermined phrases.
 7. Themethod of claim 5, further comprising: based on the detection of the oneor more predetermined phrases, dynamically triggering, by the processor,a workflow process to update a database comprising information relatedto the contact.
 8. The method of claim 1, wherein the plurality ofrequired statements comprise one or more first required statements thatare provided by a contact center resource to the contact and one or morecorresponding second required statements that are provided by thecontact to the contact center resource, the method further comprising:monitoring, by the processor via a speech search plug-in, a speechsignal from the present communication session; matching, by theprocessor via the speech search plug-in, a particular one of the secondrequired statements to a particular one of the first requiredstatements; and updating, by the processor, based on the matching, ametric contained in a profile comprising information related to thecontact, wherein the metric relates to an amount of time required by thecontact to provide the particular one of the second required statements.9. The method of claim 8, wherein the point of progress is estimatedbased on the matching of the particular one second required statement tothe particular one first required statement.
 10. The method of claim 1,wherein the plurality of required statements comprise a plurality offirst required statements that are provided by the contact to a contactcenter resource, the method further comprising: determining, by theprocessor, a number of the first required statements that have beendetected; and dynamically updating, by the processor, the EWT based on anumber of the first required statements that are remaining.
 11. A systemto calculate an expected waiting time (EWT) of a contact in a contactcenter, comprising: a memory device storing executable instructions; anda processor in communication with the memory device, wherein theprocessor when executing the executable instructions: monitors a contentof a present communication session; provides a policy adherence displaycomprising a plurality of required statements for the presentcommunication session; based on detection of one or more of theplurality of required statements in the content of the presentcommunication session: dynamically updates the policy adherence displayto indicate detection of the one or more required statements; andestimates, based on the detection of the one or more requiredstatements, a point of progress of the present communication session;compares the point of progress of the present communication session to ahistorical statistic; calculates based on the comparison, a projectionof a duration of a remainder of the present communication session; andprovides the EWT to a communications circuit.
 12. The system of claim11, wherein calculating the projection comprises calculating an averageEWT based on the comparison with the historical statistic and wherein:the communications circuit is associated with the contact; and the EWTprovided to the communications circuit comprises the average EWT plusone standard deviation.
 13. The system of claim 11, wherein calculatingthe projection comprises calculating an average EWT based on thecomparison with the historical statistic and wherein: the communicationscircuit is associated with one or more contact center applications; andthe EWT provided to the communications circuit comprises the averageEWT.
 14. The system of claim 11, wherein the plurality of requiredstatements comprise two or more categories of statements and whereincalculating the projection comprises weighting the projection based on:(i) a number of required statements within each of the two or morecategories that have been detected; and (ii) a number of remainingrequired statements within each of the two or more categories.
 15. Thesystem of claim 11, wherein the processor executes the executableinstructions to implement a speech search plug-in to: monitor a speechsignal from the present communication session; and based on themonitoring, detect one or more predetermined phrases.
 16. The system ofclaim 15, wherein the processor when executing the executableinstructions: transmits, to a desktop client of a supervisor, anindication related to detection of the one or more predeterminedphrases.
 17. The system of claim 15, wherein the processor whenexecuting the executable instructions: dynamically triggers, based onthe detection of the one or more predetermined phrases, a workflowprocess to update a database comprising information related to thecontact.
 18. The system of claim 11, wherein the plurality of requiredstatements comprise one or more first required statements that areprovided by a contact center resource to the contact and one or morecorresponding second required statements that are provided by thecontact to the contact center resource, the processor executing theexecutable instructions to implement a speech search plug-in to: monitora speech signal from the present communication session; match aparticular one of the second required statements to a particular one ofthe first required statements; and update, based on the matching, ametric contained in a profile comprising information related to thecontact, wherein the metric relates to an amount of time required by thecontact to provide the particular one of the second required statements.19. The system of claim 18, wherein the point of progress is estimatedbased on the matching of the particular one second required statement tothe particular one first required statement.
 20. The system of claim 11,wherein the plurality of required statements comprise a plurality offirst required statements that are provided by the contact to a contactcenter resource and wherein the processor when executing the executableinstructions: determines a number of the first required statements thathave been detected; and dynamically updates the EWT based on a number ofthe first required statements that are remaining.